#define _CRT_SECURE_NO_WARNINGS 1
//随机链表的拷贝
//struct Node* copyRandomList(struct Node* head) {
//    struct Node* cur = head;
//    struct Node* copy = NULL;
//    //将新节点与旧结点连接
//    while (cur)
//    {
//        copy = (struct Node*)malloc(sizeof(struct Node));
//        struct Node* next = cur->next;
//        copy->val = cur->val;
//        cur->next = copy;
//        copy->next = next;
//        cur = next;//注意此时cur->next为拷贝值，不要写错
//    }
//    cur = head;
//    //复制随机值
//    while (cur)
//    {
//        copy = cur->next;
//        if (cur->random == NULL)
//        {
//            copy->random = NULL;
//        }
//        else
//        {
//            copy->random = cur->random->next;//random->next为随机值的复制结点
//        }
//        cur = copy->next;
//    }
//    cur = head;
//    struct Node* copyhead = NULL, * copytail = NULL;
//    //恢复结点
//    while (cur)
//    {
//        copy = cur->next;
//        struct Node* next = copy->next;
//        if (copytail == NULL)
//        {
//            copyhead = copytail = copy;
//        }
//        else
//        {
//            copytail->next = copy;
//            copytail = copytail->next;
//        }
//        cur->next = next;
//        cur = cur->next;
//
//    }
//    return copyhead;
//}